数组
定义数组
1.var 数组名称 = [元素1,元素2,...];
var arr=[];//定义空数组
var arr1=[100,'前端',true,undefined];//定义数组同时添加不同类型的元素
2.构造函数方式
var 数组名称 = new Array(元素1,元素2,...);
var 数组名称 = new Array(length);
length:number类型,表示数组的长度(存在元素的个数)
var arr=new Array();//用new创造出一个空数组的构造函数
var arr1=new Array(100,'前端',true,undefined);//用new创造一个空数组的构造函数并添加元素
3.函数方式定义
var 数组名称 = Array(元素1,元素2,...);
var 数组名称 = Array(length);
length:number类型,表示数组的长度(存在元素的个数)
var arr=Array();//定义一个空数组
var arr1=Array(100,'前端',true);//定义一个空数组并添加元素
var arr2=Array(20);//定义一个数组并给它开20个位置
索引数组
表示数组中元素的位置使用数字值来表示的
数字值:表示元素的位置,也就是下标
数组的长度与元素的个数是一致的
var arr=[];//定义一个空数组
arr[0] = '大前端';
arr[1] = true;
关联数组
表示数组中元素的位置使用字符串来表示
注意关联数组的数组长度与元素个数不一致,length在关联数组中失效
var arr=[];//定义一个空数组
arr['name'] = '孙悟空';
arr['age'] = 500;
arr['job'] = '花果山美猴王';
稀疏数组
数组的长度与元素的个数不一致的,索引数组的位置允许不连续的,没有定义元素的位置默认为空
var arr=[];
arr[0] = '美猴王';
arr[3] = 500;
arr[5] = '花果山';
访问数组的元素
数组名称[索引值]
var arr=['大前端',100,null];//定义数组
console.log(arr[0]);//输出arr中0位置的内容
console.log(arr[5]);//访问arr中位置5的内容,虽然不存在,但是也不报错,返回undefined
数组的复制
var num=100;
var res=num;
console.log(num);//输出结果:100
console.log(res);//输出结果:100
num=200;
console.log(res);//输出结果:100
//复制变量里的值,不管原变量怎么改动值,都不影响复制它值的另一个变量的值
var arr=['大前端',100,true];
var arr1=arr;
console.log(arr);//输出结果:['大前端',100,true]
console.log(arr1);//输出结果:['大前端',100,true]
arr=[100];
console.log(arr);//输出结果:[100]
console.log(arr1);//输出结果:['大前端',100,true]
arr[0]=100;
console.log(arr);//输出结果:[100,100,true]
console.log(arr1);//输出结果:[100,100,true]
/*复制一个数组,如果被复制的原数组,只会把原数组中的存储地址位置赋值给另一个数组,
另一个数组会跟它一起通过地址位置连接到同一个存储位置,如果原数组修改自己里面的值
会影响另一个数组,如果原数组直接重新赋值一个新数组,则不影响另一个数组*/
数组的修改
//索引数组的修改
var arr=['大前端',100];
arr[0]='前端';
//关联数组的修改
var arr1=[];
arr1['name']='孙悟空';
arr1['age']=500;
arr1['name']='唐僧';
数组的删除
//索引数组的删除
var arr1=['大前端',true];
delete arr1[0];
//关联数组的删除
var arr2=[];
arr2['kecheng']='大前端';
arr2['name']='张三';
delete arr2['kecheng'];
循环遍历数组
var arr = ['前端', 200, true, undefined];
// while语句
var i = 0;
while (i < arr.length){
console.log(arr[i]);
i++;
}
// do...while语句
var i = 0;
do {
console.log(arr[i]);
i++;
} while (i < arr.length);
// for语句
for (var i=0; i<arr.length; i++) {
console.log(arr[i]);
}
for...in语句
for语句:循环的开始和结束,都是由程序员决定的
for..in语句:循环只能从开始到结束
var arr = ['前端', 100, true, undefined];
/*
for (var 变量 in 数组) {
代码段
}
* 变量:得到的是数组的索引值
*/
for (var i in arr) {
console.log(arr[i]);
}
// 关联数组的length属性为 0
var arr1 = [];
arr1['name'] = '张三';
arr1['age'] = 28;
arr1['job'] = '程序员';
// for..in语句可以循环遍历关联数组, for语句不行
for (var i in arr1) {
console.log(arr1[i]);
}
// 稀疏数组 - 数组的长度与元素的个数不一致
var arr2 = [];
arr1['name'] = '李四';
arr1['age'] = 89;
arr1['job'] = '运动员';
// for..in语句循环遍历稀疏数组(直接得到有效元素值), for语句不行
for (var i in arr2) {
console.log(arr2[i]);
}
二维数组
var arr = [];// 定义一个空数组
arr[0] = [苹果X,8999,2017];
arr[1] = [小米,999,2016];
arr[2] = [华为,4563,2017];
console.log(arr);
// 访问二维数组中的元素
var result = arr[0];
console.log(result[0]);
console.log(arr[0][0]);
// 循环遍历二维数组
for (var i=0; i<arr.length; i++) {
console.log(arr[i]);
for (var j=0; j<arr[i].length; j++) {
console.log(arr[i][j]);
}
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。